2
תגובות

namespace אחד לכמה קבצים

פתח zacharya ,
אני מעוניין שלניימספייס אחד שאני יוצר יכנסו כמה וכמה מחלקות אך אני לא רוצה לכתוב את כל המחלקות באותו קובץ, אם אני אצור את המחלקות בקבצים נפרדים ואז אצור קובץ שיוצר את הניימספייס ועושה require לקבצים המכילים את המחלקות, המחלקות יכללו בתוך הניימספייס?

2 תשובות

avatar ענה vu47678 ב 27 לינואר 2014 #

ניסיתי לעשות את זה אונלין עכשיו וזה לא עבד
כל מה שכללתי בInclude פשוט לא קיבל את הnamespace הזה שזה מוזר.

avatar ענה OrelBeY ב 28 לינואר 2014 #

הצהרת מרחב שמות לא חלה על קבצים מיובאים, אלא רק על הקובץ שבו היא נכתבה. אם לא תצהיר על מרחב שמות בקובץ כלשהו, הוא יהיה במרחב השמות הגלובלי, גם אם תייבא אותו לקובץ אחר.

PROJECT_PATH/some/nested/namespace/ClassA.php

namespace some\nested\namespace;

class ClassA { ... }


PROJECT_PATH/some/nested/namespace/ClassB.php
namespace some\nested\namespace;

class ClassB { ... }


PROJECT_PATH/some/nested/namespace/AnotherClass.php
namespace some\nested\namespace;

// `use` ClassA & ClassB and use auto loading or import them directly using include() or require().
// They will stay in the namespace declared in their own file (the global one if not declared),
// which happens to be the same as in this file.

class AnotherClass { ... }


PROJECT_PATH/some/other/nested/namespace/AnotherClass.php
namespace some\other\nested\namespace;

// `use` ClassA & ClassB and use auto loading or import them directly using include() or require()
// They will stay in the namespace declared in their own file (the global one if not declared).

class AnotherClass { ... }